using System.Runtime.InteropServices;

namespace EOSDigital.SDK
{
	[StructLayout(LayoutKind.Sequential, Pack = 2)]
	public struct Capacity
	{
		public int NumberOfFreeClusters;

		public int BytesPerSector;

		public bool Reset;

		public Capacity(int NumberOfFreeClusters, int BytesPerSector, bool Reset)
		{
			this.NumberOfFreeClusters = NumberOfFreeClusters;
			this.BytesPerSector = BytesPerSector;
			this.Reset = Reset;
		}

		public static bool operator ==(Capacity x, Capacity y)
		{
			if (x.NumberOfFreeClusters == y.NumberOfFreeClusters && x.BytesPerSector == y.BytesPerSector)
			{
				return x.Reset == y.Reset;
			}
			return false;
		}

		public static bool operator !=(Capacity x, Capacity y)
		{
			return !(x == y);
		}

		public override bool Equals(object obj)
		{
			if (obj is Capacity)
			{
				return this == (Capacity)obj;
			}
			return false;
		}

		public override int GetHashCode()
		{
			int num = -2128831035;
			num *= (0x1000193 ^ this.NumberOfFreeClusters.GetHashCode());
			num *= (0x1000193 ^ this.BytesPerSector.GetHashCode());
			return num * (0x1000193 ^ this.Reset.GetHashCode());
		}
	}
}
